GP8413:2路I2C转0-5V/10V (15bit)模拟电压模块

产品简介

Gravity: 0-10V 15位高精度双通道ADC模块是一款专为高精度0-10V模拟信号采集而设计的模块,能够在0-10V电压范围内实现高达0.3125mV的分辨率,测量误差<2mV。模块使用德州仪器ADS1115芯片,芯片内部有精密参考电压和可编程增益调节(PGA),因此在性能与可靠性方面表现出色。模块支持I2C和UART通讯,便于与单片机连接,广泛适用于温度传感器、水位传感器、压力传感器等多种0-10V模拟电压信号采集需求,是工业自动化、环境监测等领域的理想选择。

产品特性

  • 支持0-10V的模拟输入信号,兼容大部分工农业模拟量传感器
  • 双通道15位高分辨率(0.3125mV分辨率),高精度(测量误差<2mV)
  • 支持I2C、UART通信,兼容各种主控

应用场景

  • 工业自动化:检测温度、压力、流量、水位等参数
  • 环境检测:检测温湿度、风速、风向、水质等参数

规格参数

  • ADC芯片型号:ADS1115
  • 工作电压:3.3V-5V
  • 测量范围:0-10V
  • 分辨率:0.3125mV
  • 测量误差:±2mV
  • 通道数:2通道
  • 通信方式:I2C、UART

功能示意图

标号 接口名称 说明
1 D/T I2C数据线SDA或串口UART发送端TXD
2 C/R I2C时钟线SCL或串口UART接收端RXD
3 GND 电源负极
4 VCC 电源正极(3.3~5V)
5 I2C、UART通讯选择开关 选择I2C/UART通讯模式
6 I2C地址选择开关 切换I2C地址,地址信息见模块背面
7 AIN1 输入电压信号1正极
8 AIN2 输入电压信号2正极
9 GND 输入电压信号负极

尺寸图

串口通信说明

出厂参数

  • 设备地址:0x00CC
  • 波特率:9600bps

命令表:

设备地址 输入寄存器 寄存器个数 选择通道 读取设备地址 读取寄存器地址 读取电压数据
0xCC 0x20 0x01 0x01
0x02
0xBB 0x31 0x03

通过串口读取通道1的电压数据

主机发送:0xCC 0x20 0x01 0x01 //选择模块设备地址及通道

然后再发送:0xBB 0x31 0x03 //读取通道1的电压值

串口AT指令说明

命令 意义 返回值
AT AT测试指令 OK
AT+AIN1=? 读取AIN1通道数据 AT+AIN1=
十进制数,单位mV,保留小数点后两位
AT+AIN2=? 读取AIN2通道数据 AT+AIN2=
十进制数,单位mV,保留小数点后两位

下图将展示使用AT指令分别读取通道1和通道2的电压值

注:如果使用表中没有的命令,则会返回:ERROR

Arduino使用教程

软硬件准备

使用I2C读取数据

接线图

样例代码

  • 将模块与UNO控制器按照上方的连线图相连,当然你也可以配合扩展板使用,可以更方便、更快速的完成项目原型搭建。
  • 将传感器上的选择开关,拨到I2C一侧。
  • 下载并安装DFRobot_ADS1115库。如何安装库?
  • 打开Arduino IDE,将下面的代码上传到UNO控制器。
  • 打开Arduino IDE的串口监控视器,把波特率调至9600,观察串口打印结果。

注意:波动选择开关时需要断电

#include <DFRobot_ADS1115_0_10V.h>

#define MODULE_I2C_ADDRESS 0x4A
DFRobot_ADS1115_I2C ads1115(&Wire, MODULE_I2C_ADDRESS);

void setup() {
    Serial.begin(9600);
    while (!ads1115.begin()) { delay(1000); }  
}

void loop() {
  double data;
  data= ads1115.get_value(1); // 通道1
  Serial.print(data);
  Serial.println("mv");
  delay(1000);
}

结果

打开串口监视器,得到通道1输入的电压值

使用UART读取数据

接线图

样例代码

  • 将模块与UNO控制器按照上方的连线图相连,当然你也可以配合扩展板使用,可以更方便、更快速的完成项目原型搭建。
  • 将传感器上的选择开关,拨到UART一侧。
  • 下载并安装DFRobot_ADS1115库。如何安装库?
  • 打开Arduino IDE,将下面的代码上传到UNO控制器。
  • 打开Arduino IDE的串口监控视器,把波特率调至9600,观察串口打印结果。

注意:波动选择开关时需要断电

#include <DFRobot_ADS1115_0_10V.h>
#include <SoftwareSerial.h>

SoftwareSerial mySerial1(4, 5); // 设置软串口的RX和TX引脚
DFRobot_ADS1115_UART ads1115(&mySerial1);

void setup() {
    Serial.begin(9600);
    mySerial1.begin(9600);
    while (!ads1115.begin()) 
    { 
        delay(1000); 
    }  
}

void loop() {
  double data;
  data= ads1115.get_value(1); // 通道1
  Serial.print(data);
  Serial.println("mv");
  delay(1000);
}

结果

打开串口监视器,得到通道1输入的电压值

更多资料下载

常见问题(FAQ)

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

DFshopping_car1.png DFRobot商城购买链接